Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

500
Vistas
javascript/mecanografiado | validador de clase | decoradores de validación personalizados | anular `validationOptions` dentro del método `validator`

Considere el ejemplo proporcionado en la sección Decoradores de validación personalizados :

 // Decorator definition import { registerDecorator, ValidationOptions, ValidationArguments } from 'class-validator'; export function IsLongerThan(property: string, validationOptions?: ValidationOptions) { return function (object: Object, propertyName: string) { registerDecorator({ name: 'isLongerThan', target: object.constructor, propertyName: propertyName, constraints: [property], options: validationOptions, validator: { validate(value: any, args: ValidationArguments) { const [relatedPropertyName] = args.constraints; const relatedValue = (args.object as any)[relatedPropertyName]; return typeof value === 'string' && typeof relatedValue === 'string' && value.length > relatedValue.length; // you can return a Promise<boolean> here as well, if you want to make async validation }, }, }); }; }
 // Decorator usage import { IsLongerThan } from './IsLongerThan'; export class Post { title: string; @IsLongerThan('title', { /* you can also use additional validation options, like "groups" in your custom validation decorators. "each" is not supported */ message: 'Text must be longer than the title', }) text: string; }

¿Cómo puedo establecer/anular la cadena de message de forma condicional, dentro del método de validator ? es posible?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Lo encontré:

 export function IsLongerThan(property: string, validationOptions?: ValidationOptions) { return function (object: Object, propertyName: string) { let message; const validate = function (value: any, args: ValidationArguments) { // Set message based on some validation logic // message = ... } const defaultMessage = function () { return message; } registerDecorator({ name: 'isLongerThan', target: object.constructor, propertyName: propertyName, constraints: [property], options: validationOptions, validator: { validate, defaultMessage }, }); }; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda